//
//  ADStatus.swift
//  myBlog
//
//  Created by mac2014 on 16/3/26.
//  Copyright © 2016年 AD. All rights reserved.
//

import UIKit
/// 微博状态模型
class ADStatus: NSObject {
    //微博用户模型()
    var user: ADUserModel?
    
    // 微博创建时间
    var created_at: String?
    
    // 微博ID
    var id: Int64 = 0
    
    // 微博文本信息
    var text: String?
    
    // 微博来源
    var source: String?
    
    // 微博配图
    var storePictureURLs: [NSURL]?
    
    var pic_urls: [[String: AnyObject]]? {
        //判断是否有图片
        didSet {
            //如果没有图片，则返回
            if pic_urls?.count == 0 {
                return
            }
            //创建数组以存放nsurl类型的数据
            storePictureURLs = [NSURL]()
            //遍历pic_urls数组
            for dict in pic_urls! {
                //没有进入{}
                guard let urlString = dict["thumbnail_pic"] as? String else {
                    //没有值
                    break
                }
                //有值的话创建图片链接url
                guard let url = NSURL(string: urlString) else {
                    //没有url
                    break
                }
                //将url存放在数组中
                storePictureURLs?.append(url)
            }
        }
    }
    
    // 转发数
    var reposts_count: Int = 0
    
    // 评论数
    var comments_count: Int = 0
    
    // 点赞数
    var attitudes_count: Int = 0
    
    // 转发微博
    var retweeted_status: ADStatus?
    
    /**
    *  字典转模型
    */
    init(dict: [String: AnyObject]) {
        //初始化创建对象
        super.init()
        //使用KVC字典转模型
        setValuesForKeysWithDictionary(dict)
    }
    
    //根据服务器返回的数据进行赋值
    override func setValue(value: AnyObject?, forKey key: String) {
        //如果key为user，将user里边的值赋给user模型
        if key == "user" {
            if let dict = value as? [String: AnyObject] {
                user = ADUserModel(dict: dict)
            }
            return
        }
        //被转发的微博
        if key == "retweeted_status" {
            if let dict = value as? [String: AnyObject]{
                retweeted_status = ADStatus(dict: dict)
            }
            return
        }
        
        super.setValue(value, forKey: key)
    }
    
    /**
    *  服务器返回数据中未使用的keyValue
    */
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
        
    }
    
}
